// 用来根据当天时间获取当天所在周的周一至周日
import moment from "moment/moment";
// 直接返回周一会有问题，因为在英文环境中，默认上周日是这周的开始，所以得计算
// 下面这个方法会将时间定位至0时0分0秒0毫秒，不这样设置的话会变成当前的时间
function getThisWeeksMondayAtMidnight(myFormat) {
		
    let now = moment();
    let diff = now.isoWeekday() - 1; // 计算当前日期与本周一的差值
    if (diff > 0) {
        // 如果当前不是周一，则向前移动到周一
        now.add(-diff, 'days');
    }
    // 显式地将时间设置为午夜
    now.hours(0).minutes(0).seconds(0).milliseconds(0);
    // 格式化日期时间字符串
    return now.format(myFormat);
}
export function getCurrentWeekStartAndEndInCST(myFormat) {
    // 获取当前UTC时间，并设置UTC偏移量为东八区
    // 注意：这里实际上并没有太大意义，因为moment()默认就是本地时间
    // 但如果你确实想从UTC开始并加上偏移量，可以这样做
    let now = moment().utcOffset('+0800');
    // let now = moment();
    myFormat = myFormat?'YYYY-MM-DD':myFormat
    let startOfWeek = getThisWeeksMondayAtMidnight(myFormat)

    // 计算本周周日的日期和时间（假设周日是一周的结束，但这里实际上需要额外处理）
    // 因为endOf('week')默认会到周日的23:59:59.999，所以你可能想要周日的00:00:00
    // let endOfWeek = now.clone().endOf('week').subtract(1, 'millisecond').format('YYYY-MM-DD HH:mm:ss');
    // 或者，如果你想要的是周日当天的开始时间（即周日00:00:00）
    let endOfWeek = now.clone().startOf('isoWeek').add(6, 'days').format(myFormat);

    // 返回结果
    return {
        startOfWeek: startOfWeek,
        endOfWeek: endOfWeek
    };
}